home *** CD-ROM | disk | FTP | other *** search
/ Utilities Professional 1-1500 / Utilities Professional 1-1500 (1994)(WPD)[!].iso / 12511500 / var1322.dms / var1322.adf / Interpreter_Config.AMOS.backup / Interpreter_Config.AMOS.amosSourceCode < prev   
AMOS Source Code  |  1992-10-20  |  18KB  |  699 lines

  1. ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 
  2. '
  3. ' AMOSPro Interpretor Configuration V 1.0
  4. '
  5. '----------------------------------------------------------------------
  6. '
  7. ' By Fran�ois Lionet 
  8. '
  9. ' (c) 1992 Europress Software Ltd. 
  10. '
  11. ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  12. '
  13. Set Buffer 16
  14. ' If called from the editor's menu 
  15. Set Accessory 
  16. ' Will only have effect it the program is runned alone...  
  17. Close Editor 
  18. Global DB$
  19. Global YDI,QUIT
  20. Global BNAME$
  21. Global STMX,NST
  22. Global MX,MY,MK,MZ,MS
  23. Global BKPOS,BKCHANGE,ABK,ADAT,BK,TBNK,BKCHUNKS
  24. Global ESX,ESY,D_NAME$
  25. ' Maximum number of strings
  26. STMX=256
  27. Dim ST$(STMX)
  28. Global ST$(),STAD
  29. Dim FLAGS(16)
  30. Global FLAGS()
  31. ' Default work bank
  32. BK=10
  33. ' Location of the default config 
  34. D_NAME$="S:AMOSPro_Interpreter_Config"
  35. ' Initialisations
  36. Resource Bank 16
  37. INIT_SCREEN
  38. BANK_NEW
  39. ' Call main loop, and exit!
  40. MN_MAIN
  41. Procedure MN_MAIN
  42.  
  43.    Do 
  44.  
  45.       If BNAME$=""
  46.          Vdialog$(1,0)=Resource$(2)+Resource$(53)
  47.       Else 
  48.          If BNAME$=D_NAME$
  49.             Vdialog$(1,0)=Resource$(2)+Resource$(54)
  50.          Else 
  51.             Vdialog$(1,0)=Resource$(2)+Right$(BNAME$,32)
  52.          End If 
  53.       End If 
  54.  
  55.       D=Dialog Run(1,1)
  56.  
  57.       Repeat 
  58.  
  59.          Multi Wait 
  60.          D=Dialog(1)
  61.          On D Proc MN_LEAVE,MN_DLOAD,MN_NLOAD,MN_SAVE,MN_SAVEAS,MN_EXT,MN_SETUP1,MN_SETUP2,MN_FILES
  62.  
  63.       Until QUIT
  64.       QUIT=0
  65.  
  66.    Loop 
  67. End Proc
  68. Procedure MN_LEAVE
  69.  
  70.    D=2
  71.    If BKCHANGE : D=Dialog Box(DB$,1,Resource$(11)) : End If 
  72.    If D=2
  73.       MN_QUIT
  74.    End If 
  75.  
  76. End Proc
  77. Procedure MN_DLOAD
  78.    MN_LOADIT[D_NAME$]
  79. End Proc
  80. Procedure MN_NLOAD
  81.    MN_LOADIT[""]
  82. End Proc
  83. Procedure MN_LOADIT[F$]
  84.  
  85.    Dialog Freeze 
  86.  
  87.    D=2 : If BKCHANGE : D=Dialog Box(DB$,1,Resource$(11)) : End If 
  88.  
  89.    If D=2
  90.  
  91.       BANK_NEW : QUIT=-1
  92.  
  93.       If F$=""
  94.          F$=Fsel$("**","",Resource$(14))
  95.          If F$="" : Goto _END : End If 
  96.       End If 
  97.  
  98.       BNAME$=""
  99.       On Error Goto _ERR
  100.       Open In 1,F$ : L=Lof(1) : Close 
  101.       Reserve As Work BK,L+8*1024
  102.       Bload F$,Start(BK) : ABK=Start(BK)
  103.  
  104.       If Peek$(ABK,4)="PIdt"
  105.  
  106.          STAD=ABK+Leek(ABK+4)+8
  107.          If Peek$(STAD,4)="PItx"
  108.             ADAT=ABK+8 : BNAME$=F$
  109.  
  110.             ' Strings
  111.             A=STAD+8
  112.             For ST=1 To STMX
  113.                L=Peek(A+1) : Exit If L=$FF
  114.                ST$(ST)=Peek$(A+2,L)
  115.                Add A,L+2
  116.             Next 
  117.  
  118.          End If 
  119.       End If 
  120.  
  121.       If BNAME$="" : D=Dialog Box(DB$,2,Resource$(15)) : End If 
  122.  
  123.    End If 
  124.    Goto _END
  125.  
  126.    _ERR: Resume _DIA
  127.    _DIA: Bell : D=Dialog Box(DB$,2,Resource$(55)) : BNAME$="" : Goto _END
  128.    _END: Dialog Unfreeze 
  129.  
  130. End Proc
  131. Procedure MN_SAVE
  132.  
  133.    MN_SAVEIT[D_NAME$]
  134.  
  135. End Proc
  136. Procedure MN_SAVEAS
  137.  
  138.    MN_SAVEIT[""]
  139.  
  140. End Proc
  141. Procedure MN_SAVEIT[F$]
  142.    If BNAME$="" : D=Dialog Box(DB$,2,Resource$(56)) : Pop Proc : End If 
  143.    Dialog Freeze 
  144.    If F$=""
  145.       F$=Fsel$("**","",Resource$(14))
  146.       If F$="" : Goto _END : End If 
  147.    End If 
  148.  
  149.    ' Poke the strings back into the bank
  150.    AP=STAD+8
  151.    For S=1 To STMX
  152.       Poke AP,0
  153.       Poke AP+1,Len(ST$(S))
  154.       Poke$ AP+2,ST$(S)
  155.       Add AP,2+Len(ST$(S))
  156.    Next 
  157.    Poke AP,0 : Poke AP+1,$FF : Add AP,2
  158.    AP=AP+AP mod 2
  159.    Loke STAD-4,AP-STAD
  160.  
  161.    ' Save the data zone to disc 
  162.    On Error Goto _ERR
  163.    Bsave F$,ABK To AP
  164.    BKCHANGE=0 : BNAME$=F$
  165.    D=Dialog Box(DB$,2,Resource$(52))
  166.    Goto _END
  167.  
  168.    _ERR: Resume _DIA
  169.    _DIA: D=Dialog Box(DB$,2,Resource$(57)) : BNAME$="" : Goto _END
  170.    _END: Dialog Unfreeze 
  171. End Proc
  172. Procedure MN_EXT
  173.  
  174.    If BNAME$="" : D=Dialog Box(DB$,2,Resource$(56)) : Pop Proc : End If 
  175.    Dim TMP$(26)
  176.    For S=16 To 42
  177.       TMP$(N)=ST$(S) : Inc N
  178.    Next 
  179.    POS=0
  180.    Do 
  181.  
  182.       Vdialog(1,2)=POS
  183.       Vdialog(1,3)=Array(TMP$(0))
  184.       D=Dialog Run(1,2)
  185.  
  186.       Repeat 
  187.  
  188.          Multi Wait 
  189.          D=Dialog(1)
  190.          POS=Rdialog(1,2)
  191.          Exit If D=1,2
  192.          If D=3
  193.             N=Rdialog(1,3)
  194.             MN_EDIT[Resource$(18)+Str$(N+1),TMP$(N)]
  195.             TMP$(N)=Param$
  196.             QUIT=-1 : Inc BKCHANGE
  197.          End If 
  198.  
  199.       Until QUIT
  200.       QUIT=0
  201.  
  202.    Loop 
  203.  
  204.    N=0
  205.    For S=16 To 42
  206.       ST$(S)=TMP$(N) : Inc N
  207.    Next 
  208.  
  209.    QUIT=-1
  210.  
  211. End Proc
  212. Procedure MN_FILES
  213.  
  214.    If BNAME$="" : D=Dialog Box(DB$,2,Resource$(56)) : Pop Proc : End If 
  215.    Dim TMP$(15)
  216.    For S=1 To 15
  217.       TMP$(N)=ST$(S) : Inc N
  218.    Next 
  219.    POS=0
  220.    Do 
  221.  
  222.       Vdialog(1,2)=POS
  223.       Vdialog(1,3)=Array(TMP$(0))
  224.       D=Dialog Run(1,4)
  225.  
  226.       Repeat 
  227.  
  228.          Multi Wait 
  229.          D=Dialog(1)
  230.          POS=Rdialog(1,2)
  231.          Exit If D=1,2
  232.          If D=3
  233.             N=Rdialog(1,3)
  234.          If N=0 : T=23 Else T=24 : End If 
  235.             MN_EDIT[Resource$(T),TMP$(N)]
  236.             TMP$(N)=Param$
  237.             QUIT=-1 : Inc BKCHANGE
  238.          End If 
  239.  
  240.       Until QUIT
  241.       QUIT=0
  242.  
  243.    Loop 
  244.  
  245.    N=0
  246.    For S=1 To 15
  247.       ST$(S)=TMP$(N) : Inc N
  248.    Next 
  249.  
  250.    QUIT=-1
  251.  
  252. End Proc
  253. Procedure MN_EDIT[T$,S$]
  254.    Vdialog$(1,1)=S$
  255.    Vdialog$(1,2)=T$
  256.    D=Dialog Run(1,3)
  257.    If D=2 : S$=Rdialog$(1,3) : End If 
  258.  
  259. End Proc[S$]
  260. Procedure MN_SETUP1
  261.  
  262.    If BNAME$="" : D=Dialog Box(DB$,2,Resource$(56)) : Pop Proc : End If 
  263.    Do 
  264.  
  265.       ' Grab the flags 
  266.       For F=0 To 8
  267.          If Peek(ADAT+34+F)
  268.             Vdialog(1,2+F)=1
  269.          Else 
  270.             Vdialog(1,2+F)=0
  271.          End If 
  272.       Next 
  273.       D=Dialog Run(1,5)
  274.  
  275.       Repeat 
  276.  
  277.          Multi Wait 
  278.          D=Dialog(1)
  279.          Exit If D=1,2
  280.          If D=11 : MN_SCREEN[Resource$(43),ADAT+48,480,704,80,288,2,1] : End If 
  281.          If D=12 : MN_SCREEN[Resource$(44),ADAT+58,320,704,80,288,2,1] : End If 
  282.       Until QUIT
  283.       QUIT=0
  284.  
  285.    Loop 
  286.  
  287.    For F=0 To 8
  288.       Poke ADAT+34+F,Vdialog(1,2+F)
  289.    Next 
  290.  
  291.    QUIT=-1 : Inc BKCHANGE
  292.  
  293. End Proc
  294. Procedure MN_SETUP2
  295.  
  296.    If BNAME$="" : D=Dialog Box(DB$,2,Resource$(56)) : Pop Proc : End If 
  297.    Do 
  298.  
  299.       ' Number of bobs 
  300.       SETVDIA[16,Deek(ADAT+8),8,256,1]
  301.       ' Number of sprites
  302.       SETVDIA[20,Leek(ADAT+16),16,312,2]
  303.       ' Copper List
  304.       SETVDIA[24,Leek(ADAT+12)/1024,2,32,1]
  305.       ' Variable name buffer 
  306.       SETVDIA[28,Leek(ADAT+20)/1024,1,32,1]
  307.       ' Default buffer 
  308.       SETVDIA[32,Leek(ADAT+26)/1024,1,512,1]
  309.       ' Ports  
  310.       Vdialog$(1,2)=ST$(43) : Vdialog$(1,3)=ST$(44)
  311.       '
  312.       D=Dialog Run(1,6)
  313.  
  314.       Repeat 
  315.  
  316.          Multi Wait 
  317.          D=Dialog(1)
  318.          Exit If D=1,2
  319.  
  320.       Until QUIT
  321.       QUIT=0
  322.  
  323.    Loop 
  324.  
  325.    ' Number of bobs 
  326.    Doke ADAT+8,Vdialog(1,16)
  327.    ' Number of sprites
  328.    Loke ADAT+16,Vdialog(1,20)
  329.    ' Copper List
  330.    Loke ADAT+12,Vdialog(1,24)*1024
  331.    ' Variable name buffer 
  332.    Loke ADAT+20,Vdialog(1,28)*1024
  333.    ' Default buffer 
  334.    Loke ADAT+26,Vdialog(1,32)*1024
  335.    ' Ports  
  336.    ST$(43)=Rdialog$(1,2) : ST$(44)=Rdialog$(1,3)
  337.  
  338.  
  339.    QUIT=-1 : Inc BKCHANGE
  340.  
  341. End Proc
  342. Procedure MN_SCREEN[T$,AD,XMIN,XMAX,YMIN,YMAX,RESX,RESY]
  343.  
  344.    A=Lowres : If RESX=2 : A=Hires : End If 
  345.    If RESY=2 : Add A,Laced : End If 
  346.    Screen Open 1,XMAX,YMAX,2,A : Screen Hide 1
  347.  
  348.    Screen Display 0,,,,14
  349.    Curs Off : Cls 0 : Palette 0,$FF0
  350.    For X=0 To XMAX Step 16 : Draw X,0 To X,YMAX : Next 
  351.    For Y=0 To YMAX Step 16 : Draw 0,Y To XMAX,Y : Next 
  352.    Wind Open 1,0,8,20,4,1 : Curs Off : Scroll Off 
  353.    SX=Deek(AD) : SY=Deek(AD+2)
  354.    WX=Deek(AD+4) : WY=Deek(AD+6)
  355.    Screen Display 1,WX,WY,SX/RESX,SY
  356.    Screen To Front 0
  357.  
  358.    Vdialog$(1,0)=T$
  359.    SETVDIA[16,Deek(AD+8),2,312,1]
  360.    D=Dialog Run(1,7)
  361.    Screen Show 1
  362.    Repeat 
  363.  
  364.       Multi Wait 
  365.       D=Dialog(1) : Exit If D=1
  366.       If D=2 : M=1 : Clw : Gosub _DISP : End If 
  367.       If D=3 : M=2 : Clw : Gosub _DISP : End If 
  368.       If D=0
  369.          If Mouse Key=1
  370.             Dialog Freeze 
  371.             While Mouse Key
  372.                If M=1
  373.                   WX=X Mouse : WY=Y Mouse
  374.                End If 
  375.                If M=2
  376.                   SX=Max(Min(X Screen(1,X Mouse),XMAX),XMIN)
  377.                   SY=Max(Min(Y Screen(1,Y Mouse),YMAX),YMIN)
  378.                   If RESX=1
  379.                      SX=SX and $FFFFFFF0
  380.                   Else 
  381.                      SX=SX and $FFFFFFE0
  382.                   End If 
  383.                   SY=SY and $FFFFFFF8
  384.                End If 
  385.                Screen Display 1,WX,WY,SX/RESX,SY
  386.                Gosub _DISP
  387.                Wait Vbl 
  388.             Wend 
  389.             Dialog Unfreeze 
  390.          End If 
  391.       End If 
  392.    Until QUIT
  393.    Screen Close 1
  394.    Screen Display 0,,,,ESY
  395.    Doke AD,SX : Doke AD+2,SY
  396.    Doke AD+4,WX : Doke AD+6,WY
  397.    Doke AD+8,Vdialog(1,16)
  398.    QUIT=-1
  399.    Pop Proc
  400.  
  401.    _DISP:
  402.    Home 
  403.    If M=1
  404.       Print Resource$(48);WX;"  "
  405.       Print Resource$(49);WY;"  "
  406.    Else 
  407.       Print Resource$(50);SX;"  "
  408.       Print Resource$(51);SY;"  "
  409.    End If 
  410.    Return 
  411. End Proc
  412. Procedure BANK_NEW
  413.  
  414.    ' Erase the current config from memory 
  415.    BNAME$=""
  416.    For S=0 To STMX : ST$(S)="" : Next 
  417.    BKCHANGE=0
  418. End Proc
  419. Procedure SETVDIA[V,A,B,C,D]
  420.    Vdialog(1,V)=A
  421.    Vdialog(1,V+1)=B
  422.    Vdialog(1,V+2)=C
  423.    Vdialog(1,V+3)=D
  424. End Proc
  425. Procedure INIT_SCREEN
  426.  
  427.    Restore DBL
  428.    Repeat 
  429.       Read A$ : DB$=DB$+A$
  430.    Until A$=""
  431.  
  432.    ESX=640 : ESY=200 : YDI=45
  433.    Trap Screen Open 0,ESX,ESY,8,Hires
  434.    If Errtrap : OOMEM : End If 
  435.    Screen Display 0,,YDI,,
  436.    Curs Off : Flash Off : Cls 0
  437.  
  438.    GRB_EDITOR_PALETTE
  439.    Paper 0 : Pen 1
  440.    Limit Mouse 96,35 To 530,312
  441.  
  442.    On Error Goto ERR
  443.    Trap Dialog Open 1,DB$,48
  444.    If Errtrap : OOMEM : End If 
  445.    Pop Proc
  446.  
  447.    ERR: Print Mid$(DB$,Edialog,80) : Wait Key : End 
  448.    ' Definition of quick-run dialog boxes 
  449.    DBL:
  450.    Data "SIze   1VA TW 160+,64;"
  451.    Data "BAse   SWidth SX -2/,SHeight SY- 2/;"
  452.    Data "SAve   1;"
  453.    Data "RBox   0,0,SX,SY,0;"
  454.    Data "CTxt   16,8,SX 16-,32,1,1VA;"
  455.    Data "IF     0VA 1=;"
  456.    Data "["
  457.    Data "       BJ 1,16,SY 24-,64,16,12ME; KY 27,0;"
  458.    Data "       BJ 2,SX 80-,SY 24-,64,16,13ME; KY 13,0;"
  459.    Data "]"
  460.    Data "IF     0VA 2=;"
  461.    Data "["
  462.    Data "       BJ 1,SX 80-,SY 24-,64,16,13ME; KY $FF,0;"
  463.    Data "]"
  464.    Data "RUn    0,3;"
  465.    Data "EXit;"
  466.  
  467.    ' Definition of the first menu page
  468.    Data "LA 1;"
  469.    Data "BAse   0,0; SIze SW,SH;"
  470.    Data "BT     1,0,0,48,16,1ME;"
  471.    Data "BI     0,XB,0,SX XB-,16,0VA;"
  472.    Data "RB     0,16,SX,SY,0;"
  473.    Data "BT     2,32,28,SX64-,16,3ME;"
  474.    Data "BT     3,XA,YB,XB XA-,YB YA-,4ME;"
  475.    Data "BT     4,XA,YB,XB XA-2/,YB YA-,5ME;"
  476.    Data "BT     5,XB,YA,XB XA-,YB YA-,6ME;"
  477.    Data "BT     6,32,YB 16+,SX64-,24,8ME;"
  478.    Data "BT     7,XA,YB,XB XA-,YB YA-,7ME;"
  479.    Data "BT     8,XA,YB,XB XA-,YB YA-,9ME;"
  480.    Data "BT     9,XA,YB,XB XA-,YB YA-,10ME;"
  481.    Data "EXit;"
  482.  
  483.    ' Definition of Extension screen 
  484.    Data "LA 2;"
  485.    Data "BAse   0,0; SIze SW,SH;"
  486.    Data "BT     1,0,0,48,16,20ME;"
  487.    Data "BI     0,XB,0,SX XB-,16,16ME;"
  488.    Data "RB     0,16,SX,SY,0;"
  489.    Data "CTxt   32,32,SX32-,64,1,17ME;"
  490.    Data "LS     2,XA2-,YB14+,SX30-,SY14-,%11;"
  491.    Data "EXit;"
  492.  
  493.    ' Definition of the pop-up string edition
  494.    Data "LA 3;"
  495.    Data "BAse   16,64; SIze SW32-,72;SA 1;"
  496.    Data "RBox   0,0,SX,SY,0;"
  497.    Data "RBox   8,4,SX8-,20,1;"
  498.    Data "POut   2VA CX,8,2VA,0,3;"
  499.    Data "RBox   13,30,SX 13-,42,1;"
  500.    Data "BJ     1,16,SY 24-,128,16,12ME; KY 27,0;"
  501.    Data "BJ     2,SX144-,SY 24-,128,16,13ME; KY 13,0;"
  502.    Data "EDit   3,16,32,72,72,1VA,0,3;"
  503.    Data "RU     0,3;"
  504.    Data "EXit;"
  505.  
  506.    ' Definition of system files 
  507.    Data "LA 4;"
  508.    Data "BAse   0,0; SIze SW,SH;"
  509.    Data "BT     1,0,0,48,16,20ME;"
  510.    Data "BI     0,XB,0,SX XB-,16,21ME;"
  511.    Data "RB     0,16,SX,SY,0;"
  512.    Data "CTxt   32,32,SX32-,64,1,22ME;"
  513.    Data "LS     2,XA2-,YB14+,SX30-,SY14-,%11;"
  514.    Data "EXit;"
  515.  
  516.    ' Definition of system setup, page 1 
  517.    Data "LA 5;"
  518.    Data "BAse   0,0; SIze SW,SH;"
  519.    Data "BT     1,0,0,48,16,20ME;"
  520.    Data "BI     0,XB,0,SX XB-,16,27ME;"
  521.    Data "RB     0,16,SX,SY,0;"
  522.    Data "BK     2,16,24,SX32-,14,35ME;"
  523.    Data "BK     3,XA,YB,XBXA-,YBYA-,36ME;"
  524.    Data "BK     4,XA,YB,XBXA-,YBYA-,37ME;"
  525.    Data "BK     5,XA,YB,XBXA-,YBYA-,38ME;"
  526.    Data "BK     6,XA,YB,XBXA-,YBYA-,39ME;"
  527.    Data "BK     7,XA,YB,XBXA-,YBYA-,40ME;"
  528.    Data "BK     8,XA,YB,XBXA-,YBYA-,58ME;"
  529.    Data "BK     9,XA,YB,XBXA-,YBYA-,59ME;"
  530.    Data "BK     10,XA,YB,XBXA-,YBYA-,60ME;"
  531.    Data "BT     11,XA,YB8+,XBXA-2/,32,33ME;"
  532.    Data "BT     12,XB,YA,XBXA-,YBYA-,34ME;"
  533.    Data "EXit;"
  534.  
  535.    ' Definition of system setup, page 2 
  536.    Data "LA 6;"
  537.    Data "BAse   0,0; SIze SW,SH;"
  538.    Data "BT     1,0,0,48,16,20ME;"
  539.    Data "BI     0,XB,0,SX XB-,16,27ME;"
  540.    Data "RB     0,16,SX,SY,0;"
  541.    Data "RC     16,32,416,14,1,28ME; NE 16,XB,YA;"
  542.    Data "RC     16,YB4+,416,YBYA-,1,30ME; NE 20,XB,YA;"
  543.    Data "RC     16,YB4+,416,YBYA-,1,29ME; NE 24,XB,YA;"
  544.    Data "RC     16,YB4+,416,YBYA-,1,31ME; NE 28,XB,YA;"
  545.    Data "RC     16,YB4+,416,YBYA-,1,32ME; NE 32,XB,YA;"
  546.    Data "RC     16,YB24+,416,14,1,41ME;"
  547.    Data "RB     XB,YA,SX16-,YB,0; EDit 2,XA16+,YA3+,20,20,2VA,0,3;"
  548.    Data "RC     16,YB8+,416,14,1,42ME;"
  549.    Data "RB     XB,YA,SX16-,YB,0; EDit 3,XA16+,YA3+,20,20,3VA,0,3;"
  550.    Data "EXit;"
  551.  
  552.    ' Definition of screen setup 
  553.    Data "LA 7;"
  554.    Data "BAse   0,0; SIze SW,14;"
  555.    Data "BT     1,0,0,48,14,20ME;"
  556.    Data "BI     0,XB,0,208,14,0VA;"
  557.    Data "BT     2,XB,0,48,14,45ME;"
  558.    Data "BT     3,XB,0,48,14,46ME;"
  559.    Data "RC     XB,0,96,14,1,47ME; NE 16,XB,YA;"
  560.    Data "EXit;"
  561.    '----------------------------------------
  562.    ' Text in a RBox, on the left
  563.    ' RC x,y,sx,sy,act,txt 
  564.    Data "UI     RC,6;["
  565.    Data "RB     P1,P2,P1P3+,P2P4+,P5;"
  566.    Data "PR     6P1+,P4TH-2/ P2+,P6,3;"
  567.    Data "XY     P1,P2,P1P3+,P2P4+;"
  568.    Data "]"
  569.    '----------------------------------------
  570.    ' One button, with text, ON/OFF <<< variable 
  571.    ' BK zone,x,y,sx,sy,text1  
  572.    Data "UI     BK,6; ["
  573.    Data "RC     P2,P3,P464-,P5,1,P6;"
  574.    Data "BU     P1,P2P4+64-,P3,64,P5,P1VA,0,1;"
  575.    Data "       [RB 0,0,SX,SY,0;"
  576.    Data "        PR 25BP+ME CX,SY TH- 2/,25BP+ME,3;]"
  577.    Data "       [SVar ZN,ZPos;]"
  578.    Data "XY     P2,P3,P2P4+,P3P5+;"
  579.    Data "]"
  580.    ' -------------------------------- 
  581.    ' Number Edit: - / + / Slider / Digit  
  582.    ' NE zone,x,y Uses 4 variables from ZONE     
  583.    Data "UI     NE,3; ["
  584.    Data "SZone  P1;"
  585.    Data "RBox   P2,P3,128P2+,14P3+,0;"
  586.    Data "HSlide P1,XA4+,YA3+,119,8,P1VA 1P1+VA -,1,2P1+VA 1P1+VA -,3P1+VA;"
  587.    Data "       [SVar ZN,ZPos 1ZN+VA +;JS 100;]"
  588.    Data "SVar   2P1+,128P2+; SVar 3P1+,P3; JSub 100;"
  589.    Data "XY     P2,P3,XB,YB;"
  590.    Data "       ]"
  591.    Data "LA100; RB 2ZV+VA,3ZV+VA,2ZV+VA64+,3ZV+VA14+,0;"
  592.    Data "PRint  2ZV+VA6+,3ZV+VA3+,ZVVA #,3;"
  593.    Data "XY     2ZV+VA,3ZV+VA,2ZV+VA64+,3ZV+VA14+; RTs;"
  594.    ' -------------------------------- 
  595.    ' List Slider: draw a list + a slider, linked together 
  596.    ' LS zone,x,y,x,y,flags
  597.    Data "UI     LS,6; ["
  598.    Data "RB     P2,P3,P2 16+,P5,1;"
  599.    Data "RB     XB,YA,P4,P5,1;"
  600.    Data "SZone  P1;"
  601.    Data "VSlide P1,P2 3+,P3 2+,9,P5 P3- 4-,P1VA,7,1P1+VA AS,1;[ZChange ZNum 1+,ZPos;]"
  602.    Data "AList  P1 1+,P2 18+,P3 2+,P4 P2- 18- 8/,P5 P3- 8/,1P1+VA,P1VA,P6,0,3;[]"
  603.    Data "XY     P2,P3,P4,P5;]"
  604.    '----------------------------------------
  605.    ' One button, with vertical text, click only   
  606.    ' BV zone,x,y,sx,sy,text 
  607.    Data "UI     BV,6; ["
  608.    Data "SZone  P6;"
  609.    Data "BU     P1,P2,P3,P4,P5,0,0,1;"
  610.    Data "       [RB 0,0,SX,SY,BP;"
  611.    Data "        VTxt SX 2/ 4- BP+,SY ZVarTLen TH* - 2/ BP+,ZV,1;]"
  612.    Data "       [BR 0;]"
  613.    Data "]"
  614.    '----------------------------------------
  615.    ' One button, with text, click only  
  616.    ' BT zone,x,y,sx,sy,text 
  617.    Data "UI     BT,6; ["
  618.    Data "SZone  P6;"
  619.    Data "BU     P1,P2,P3,P4,P5,0,0,1;"
  620.    Data "       [RB 0,0,SX,SY,BP;"
  621.    Data "        PR ZV CX BP+,SY TH- 2/ BP+,ZV,3;]"
  622.    Data "       [BR 0;]"
  623.    Data "]"
  624.    '----------------------------------------  ' 
  625.    ' One button, with text to move the screen 
  626.    ' BT zone,x,y,sx,sy,text 
  627.    Data "UI     BI,6; ["
  628.    Data "SZone  P6;"
  629.    Data "BU     P1,P2,P3,P4,P5,0,0,1;"
  630.    Data "       [RB 0,0,SX,SY,BP;"
  631.    Data "        PR ZV CX BP+,SY TH- 2/ BP+,ZV,3;]"
  632.    Data "       [SMove;BR 0;]"
  633.    Data "]"
  634.    '----------------------------------------
  635.    ' One button, with text, click only, QUIT!   
  636.    ' BJ zone,x,y,sx,sy,text 
  637.    Data "UI     BJ,6; ["
  638.    Data "SZone  P6;"
  639.    Data "BU     P1,P2,P3,P4,P5,0,0,1;"
  640.    Data "       [RB 0,0,SX,SY,BP;"
  641.    Data "        PO ZV CX BP+,SY TH- 2/ BP+,ZV,0,3;]"
  642.    Data "       [BR 0;BQuit;]"
  643.    Data "]"
  644.    '----------------------------------------
  645.    ' Text centered in one RB
  646.    ' CT x1,y1,x2,y2,act,text
  647.    Data "UI     CT,6; ["
  648.    Data "RB     P1,P2,P3,P4,P5;"
  649.    Data "PRint  P3 P1- P6TW- 2/ P1+,P4 P2- TH- 2/ P2+,P6,3;"
  650.    Data "XY     P1,P2,P3,P4;]"
  651.    '----------------------------------------
  652.    ' Ronnies Simpson graphic box definition 
  653.    ' RB x1,y1,x2,y2,activated 
  654.    Data "UI     RB,5; [SWrite 1; SPattern 0,0;"
  655.    Data "IF     P5 0=;["
  656.    Data "INk    0,0,0; GSquare P1,P2,P3 1-,P4 1-;"
  657.    Data "INk    6,6,6; GBox P1 1+,P2 1+,P3 2-,P4 2-; "
  658.    Data "INk    5,5,5; GLine P1 2+,P4 2-,P1 2+,P2 1+;"
  659.    Data "              GLine P1 1+,P4 2-,P1 1+,P2 1+;"
  660.    Data "              GLine P1 1+,P2 1+,P3 2-,P2 1+;"
  661.    Data "INk    2,2,2; GLine P1 2+,P4 2-,P3 2-,P4 2-;"
  662.    Data "              GLine P3 3-,P2 2+,P3 3-,P4 2-;"
  663.    Data "              GLine P3 2-,P2 1+,P3 2-,P4 2-;"
  664.    Data "INk    3,3,3; GLine P1 3+,P2 2+,P1 4+,P2 2+;]"
  665.    Data "IF     P5 0\;["
  666.    Data "INk    0,0,0; GSquare P1,P2,P3 1-,P4 1-;"
  667.    Data "INk    2,2,2; GBox P1 1+,P2 1+,P3 2-,P4 2-; "
  668.    Data "INk    1,1,1; GLine P1 2+,P4 2-,P1 2+,P2 1+;"
  669.    Data "              GLine P1 1+,P4 2-,P1 1+,P2 1+;"
  670.    Data "              GLine P1 1+,P2 1+,P3 2-,P2 1+;"
  671.    Data "INk    5,5,5; GLine P1 2+,P4 2-,P3 2-,P4 2-;"
  672.    Data "              GLine P3 3-,P2 2+,P3 3-,P4 2-;"
  673.    Data "              GLine P3 2-,P2 1+,P3 2-,P4 2-;]"
  674.    Data "SWrite 0; XY P1,P2,P3,P4;]"
  675.    Data ""
  676. End Proc
  677. Procedure GRB_EDITOR_PALETTE
  678.    ADAT=Leek(Dreg(3))
  679.    If ADAT=0
  680.       Palette 0,$6F,$77,$EEE,$F00,$DD,$AA,$FF3
  681.    Else 
  682.       For C=0 To 7
  683.          Colour C,Deek(ADAT+28+C*2)
  684.       Next 
  685.       Colour 1,(Colour(2) and $EEE)/2
  686.    End If 
  687. End Proc
  688. Procedure OOMEM
  689.    Trap Dialog Clr 1
  690.    Trap Dialog Close 
  691.    Trap D=Dialog Box(DB$,2,Resource$(61))
  692.    MN_QUIT
  693. End Proc
  694. Procedure MN_QUIT
  695.    Dialog Close 
  696.    Trap Screen Close 0
  697.    Trap Screen Close 1
  698.    Edit 
  699. End Proc